// Copyright (c) Appeon. All rights reserved.
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. 
// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.

namespace SnapObjects.Data
{
    /// <summary>
    ///     An enumeration of tracked states. Each name constant specifies one or more model state(s) that can be tracked.
    /// </summary>
    public enum StateTrackable
    {
        /// <summary>
        ///     All tracked states.
        /// </summary>
        AllTracked = 0,

        /// <summary>
        ///     Only the Modified state.
        /// </summary>
        Modified = 1,

        /// <summary>
        ///     Only the New state.
        /// </summary>
        New = 2,

        /// <summary>
        ///     Only the NewModified state.
        /// </summary>
        NewModified = 3,

        /// <summary>
        ///     The New and NewModified states.
        /// </summary>
        NewAndNewModified = 4,

        /// <summary>
        ///     Only the Deleted state.
        /// </summary>
        Deleted = 5
    }
}
